package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.PropertyHouse;
import org.apache.ibatis.annotations.Param;

/**
 * 房屋档案Mapper接口
 * 
 * @author ruoyi
 * @date 2025-10-27
 */
public interface PropertyHouseMapper 
{
    /**
     * 查询房屋档案
     * 
     * @param houseId 房屋档案主键
     * @return 房屋档案
     */
    public PropertyHouse selectPropertyHouseByHouseId(Long houseId);

    /**
     * 查询房屋档案列表
     * 
     * @param propertyHouse 房屋档案
     * @return 房屋档案集合
     */
    public List<PropertyHouse> selectPropertyHouseList(PropertyHouse propertyHouse);

    /**
     * 新增房屋档案
     * 
     * @param propertyHouse 房屋档案
     * @return 结果
     */
    public int insertPropertyHouse(PropertyHouse propertyHouse);

    /**
     * 修改房屋档案
     * 
     * @param propertyHouse 房屋档案
     * @return 结果
     */
    public int updatePropertyHouse(PropertyHouse propertyHouse);

    /**
     * 删除房屋档案
     * 
     * @param houseId 房屋档案主键
     * @return 结果
     */
    public int deletePropertyHouseByHouseId(Long houseId);

    /**
     * 批量删除房屋档案
     * 
     * @param houseIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePropertyHouseByHouseIds(Long[] houseIds);

    // 批量插入房屋
    int batchInsert(@Param("list") List<PropertyHouse> houseList);

    // 根据业主ID查询房屋
    List<PropertyHouse> selectByOwnerId(Long ownerId);

    // 查询已入住的房屋
    List<PropertyHouse> selectAllInhabited();

    // 按楼栋号查询房屋
    List<PropertyHouse> selectByBuildingNo(@Param("buildingId") Long buildingId, @Param("buildingNo") String buildingNo);

}
